
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>
	
        FTP知识集锦
        -
        Carol518的专栏
        - CSDN博客
</title>

    <script type="text/javascript">
        try { document.domain = "csdn.net"; } catch (ex) { }
    </script>

    <script src="/js/jquery.js" type="text/javascript"></script>

    <script src="/js/SyntaxHighlighter/jquery.highlighter.js?v=20091222" type="text/javascript"></script>

    <script src="/js/SyntaxHighlighter/highlighter.js?v=20091222" type="text/javascript"></script>

    <script src="/js/common.js" type="text/javascript"></script>

    <script src="http://counter.csdn.net/a/js/AreaCounter.js?v=20091222" type="text/javascript"></script>

    <script type="text/javascript" src="/js/feedback.js"></script>

    <script type="text/javascript" src="/js/relatedarticle.js?v=20091222"></script>

<script type='text/javascript' src='http://partner.googleadservices.com/gampad/google_service.js'></script>
<script type='text/javascript'>
    GS_googleAddAdSenseService("ca-pub-1076724771190722");
    GS_googleEnableAllServices();
</script>
<script type='text/javascript'>
    GA_googleAddSlot("ca-pub-1076724771190722", "blog_postpage_72890");
</script>
<script type='text/javascript'>
    GA_googleFetchAds();
</script>


    <link href="/css/skin/Cogitation/Cogitation_1.css?v=20091223" type="text/css" rel="stylesheet" media="all"/><link href="/css/csdn_favbykimi.css" type="text/css" rel="stylesheet" media="all" /><link rel="Shortcut Icon" href="http://profile.csdn.net/Carol518/picture/1.ico"/><link href="http://feeds.feedsky.com/csdn.net/Carol518" title="RSS" type="application/rss+xml" rel="alternate" /></head>
<body id="defaultuser">
    <div id="csdnblog_allwrap">
        <div id="csdnblog_midwrap">
            
<script src="http://csdnimg.cn/pubnav/js/pub_topnav_2011.js" type="text/javascript" ></script>
<script type="text/javascript" src="http://counter.csdn.net/a/js/AreaCounter.js" ></script>
<script type="text/javascript">
    // 页面加载完毕，脚本开始执行
    $(document).ready(function() {
        ChangeUserState();
        $("#notice").find("a").click(HideNoticeInfo);
    });
    
    var userName = getCookie("UserName");
    var isGuest = !userName || userName == "Guest";
    var delay = 20 * 60 * 1000;
    var timer = 0;

    function ChangeUserState() {        
        clearInterval(timer);
        if (isGuest) {
            HideNoticeInfo();
        }
        else {
            RefreshNoticeInfo();
            timer = setInterval( RefreshNoticeInfo, delay);
        }
    }
    
    var apiUrl = "/!handler/NoticeHandler.ashx?jsoncallback=?";
    function RefreshNoticeInfo() {
        $.getJSON(apiUrl + "&_t=" + Math.random(), function(result) {
            if (result.noticeNum) {
                newNoticeCount = result.noticeNum;
                if (newNoticeCount <= 0) {
                    $("#notice").hide();
                }
                else {
                    $("#noticeCount").text(newNoticeCount);
                    $("#notice").show();
                }
            }
        });
    }
    
    function HideNoticeInfo() {
        $("#notice").hide();
    }
</script>

<div id="csdnblog_header">
    <h1>
        <a href="http://blog.csdn.net/Carol518">
            Carol518的专栏</a></h1>
    <h2>
        </h2>
    <ul id="personalnav">
        <li style="display: none;" id="notice"><span class="newnotice"><a class="red" href="http://hi.csdn.net/space-notice.html" target="_blank" onclick='LogClickCount(this,216);'><span id="noticeCount"></span>条新通知</a></span></li>
        <li style="display: none;"><a id="a_login" href="http://passport.csdn.net/UserLogin.aspx">
            登录</a></li>
        <li style="display: none;"><a id="a_register" href="http://passport.csdn.net/CSDNUserRegister.aspx"
            target="_blank">注册</a></li>
        <li style="display: none;"><a id="a_welcome" href="http://hi.csdn.net/" target="_blank">
            欢迎</a></li>
        <li style="display: none;"><a id="a_exit" href="http://writeblog.csdn.net/Signout.aspx">
            退出</a></li>
        <li style="display: none;"><a id="a_myblog" href="http://blog.csdn.net/">我的博客</a></li>
        <li style="display: none;"><a id="a_configure" href="http://writeblog.csdn.net/configure.aspx"
            target="_blank">配置</a></li>
        <li style="display: none;"><a id="a_postedit" href="http://writeblog.csdn.net/PostEdit.aspx"
            target="_blank">写文章</a></li>
        <li style="display: none;"><a id="a_postlist" href="http://writeblog.csdn.net/PostList.aspx"
            target="_blank">文章管理</a></li>
        <li><a id="a_bloghome" href="http://blog.csdn.net" target="_blank">博客首页</a></li>
    </ul>
    <ul id="blogsearchsty">
        <li>
            <input id="inputSearch" type="text" class="bolgsearch" /></li>
        <li class="selectsty">
            <select name="Search:ddlSearchScope" id="Search_ddlSearchScope">
                <option value="all">全站</option>
                <option value="Carol518">当前博客</option>
            </select>
        </li>
        <li>
            <input type="button" id="buttonSearch" value="搜索" class="bolggobtn" /></li>
    </ul>
    <ul id="menu">
        <li><a href="http://hi.csdn.net/Carol518" target="_blank">空间</a></li>
        <li><a class="on" href="http://blog.csdn.net/Carol518">博客</a></li>
        <li><a href="http://hi.csdn.net/!s/friend/list/Carol518" target="_blank">好友</a></li>
        <li><a href="http://hi.csdn.net/!s/album/list/Carol518" target="_blank">相册</a></li>
        <li><a class="last" href="http://hi.csdn.net/!s/wall/to/Carol518" target="_blank">
            留言</a></li>
    </ul>
</div>

<script type="text/javascript">
    var CurrentUserName = 'Carol518';
</script>


            
<div id="csdnblog_sidebar">
	<div class="gutter">
		<div class="aboutauthor">
			<dl>
				<dt>用户操作</dt>
				<dd class="middle">
					<a href="http://hi.csdn.net/!s/wall/to/Carol518" target="_blank">[留言]</a>&nbsp;
					<a href="http://hi.csdn.net/!s/msg/to/Carol518" target="_blank">[发消息]</a>&nbsp;
					<a href="http://hi.csdn.net/!s/friend/add/Carol518" target="_blank">[加为好友]</a>&nbsp;
				</dd>
				<span id="userInfo"></span>
				<span id="SubscriptionList">
					<dt>订阅我的博客</dt>
					<dd>
						<a href="http://feeds.feedsky.com/csdn.net/Carol518">
							<img border="0" alt="XML聚合" src="http://img.feedsky.com/feeds/csdn.net/Carol518/sc/gif"/>
						</a>&nbsp;&nbsp;
						<a href="http://feeds.feedsky.com/csdn.net/Carol518" target="_blank">
							<img border="0" alt="FeedSky" src="/images/feedsky.gif"/>
						</a>
					</dd>
					<dd>
						<a href="http://www.xianguo.com/subscribe.php?url=http://feeds.feedsky.com/csdn.net/Carol518" target="_blank">
							<img border="0" alt="订阅到鲜果" src="/images/rss_xianguo.jpg"/>
						</a>
					</dd>
					<dd>
						<a href="http://fusion.google.com/add?feedurl=http://feeds.feedsky.com/csdn.net/Carol518" target="_blank">
							<img border="0" alt="订阅到Google" src="/images/rss_google.gif"/>
						</a>
					</dd>
					<dd>
						<a href="http://www.zhuaxia.com/add_channel.php?url=http://feeds.feedsky.com/csdn.net/Carol518" target="_blank">
							<img border="0" alt="订阅到抓虾" src="/images/rss_zhuaxia.gif"/>
						</a>
					</dd>
				</span>
				<dt>
					<span class="floatright" style="display:none;"><a class="a_edit" href="http://writeblog.csdn.net/configure.aspx" target="_blank">[编辑]</a></span>Carol518的公告
				</dt>
				<dd></dd>
				<dt><span class="floatright" style="display:none;"><a class="a_edit" href="http://writeblog.csdn.net/EditCategories.aspx?catID=1" target="_blank">[编辑]</a></span>文章分类</dt>
				<dd>
					<div class="publiclist_sidebar">
						<ul><li><a href="/Carol518/category/302936.aspx/rss"><img src="/images/rss.gif" alt="(RSS)"></a><a href="/Carol518/category/302936.aspx" title="新技术新知识，每天学习不断进步。为了生活为了爱情，努力加油">Ajax</a></li><li><a href="/Carol518/category/302935.aspx/rss"><img src="/images/rss.gif" alt="(RSS)"></a><a href="/Carol518/category/302935.aspx" title="B/S开发，大型网站建设的相关技术">ASP.net</a></li><li><a href="/Carol518/category/302934.aspx/rss"><img src="/images/rss.gif" alt="(RSS)"></a><a href="/Carol518/category/302934.aspx" title="技术文章，到处搜罗。收天下之大，为己所用。">C#2005</a></li><li><a href="/Carol518/category/322372.aspx/rss"><img src="/images/rss.gif" alt="(RSS)"></a><a href="/Carol518/category/322372.aspx" title="学技术要跟上时代">Div+Css</a></li><li><a href="/Carol518/category/322371.aspx/rss"><img src="/images/rss.gif" alt="(RSS)"></a><a href="/Carol518/category/322371.aspx" title="网站开发的万花筒">JavaScript</a></li><li><a href="/Carol518/category/302946.aspx/rss"><img src="/images/rss.gif" alt="(RSS)"></a><a href="/Carol518/category/302946.aspx" title="数据库的高级操作">SQL数据库</a></li><li><a href="/Carol518/category/302974.aspx/rss"><img src="/images/rss.gif" alt="(RSS)"></a><a href="/Carol518/category/302974.aspx" title="没事学学，好处多多">网络服务器</a></li><li><a href="/Carol518/category/317822.aspx/rss"><img src="/images/rss.gif" alt="(RSS)"></a><a href="/Carol518/category/317822.aspx" title="编程开发难免遇到各种困难">疑难杂症</a></li></ul>
					</div>
				</dd>
				
				<dt><span class="floatright" style="display:none;"><a class="a_edit" href="http://writeblog.csdn.net/EditLinks.aspx" target="_blank">[编辑]</a></span>技术连接</dt><dd><a href="http://www.cnblogs.com/Csunny/" target="_blank">.net </a></dd><dd><a href="http://www.yaosansi.com/blog/" target="_blank">asp.net   css+div</a></dd><dd><a href="http://luojing127.blog.163.com/blog/static/1204480520076260251303/" target="_blank">C</a></dd><dd><a href="http://blog.csdn.net/javaprogramers/" target="_blank">冷枫@CSDN</a></dd><dd><a href="http://blog.csdn.net/shoutor/category/16796.aspx" target="_blank">土人制造</a></dd><dd><a href="http://blog.csdn.net/21aspnet" target="_blank">清清月儿 .NET万花筒</a></dd><dd><a href="http://blog.csdn.net/hanghwp/" target="_blank">游陆之家</a></dd><dd><a href="http://blog.csdn.net/ChengKing/category/186839.aspx" target="_blank">迎接光辉岁月</a></dd>
				<dt>存档</dt>
				<dd>
					<div class="publiclist_sidebar">
						<ul><li><a href="/Carol518/archive/2007/10.aspx">2007年10月(2)</a></li><li><a href="/Carol518/archive/2007/09.aspx">2007年09月(1)</a></li><li><a href="/Carol518/archive/2007/08.aspx">2007年08月(41)</a></li><li><a href="/Carol518/archive/2007/07.aspx">2007年07月(8)</a></li><li><a href="/Carol518/archive/2007/05.aspx">2007年05月(18)</a></li></ul>
					</div>
				</dd>
			</dl>
		</div>
	</div>
</div>

            
	<style type="text/css">
/*channel style*/
.chal {font-family:Verdana,Helvetica,Arial,sans-serif;font-size:12px;font-weight:normal;}
.chal .conts span.adv{font-weight:bold; width:300px; height:auto; float:right; text-align:righ; padding:5px 10px 1px 0; line-height:18px; text-align:right; font-weight:bold}
.chal .conts span.adv img{width:300px; height:60px; padding:3px 0 0 0;}
.chal .conts {clear: both; overflow: hidden; width: auto;  border:1px solid #ccc; padding:0; text-align:left;}
.chal .conts #ann #annbody{clear:both;overflow:hidden;width: auto;border-top:1px dashed #AACBEE;margin-bottom:5px;height:18px;padding:0;text-align:left;}
.chal .conts #ann #annbodylis{width:auto; margin:0 10px 0 10px; padding:0; list-style:none;}
.chal .conts #ann #annbodylis li{width:100%; float:left; line-height:150%; text-align:left; padding:0; margin:0; color:#004797;}
.chal .conts #ann #annbodylis li a{color:#f00;}
.chal .conts #ann #annbodylis li.cen{text-align:center;}
.chal .conts #ann #annbodylis li.rig{text-align:right;}

.default_contents h4.notice {background:url("http://c.csdn.net/bbs/f/i/l/pic04.gif") no-repeat scroll 4px 10px #FFFFDD;}
/*end */

/*20100712 jinweiwei update*/
.commentnew dl dd.recruit{width:200px;float: left; text-align: left; margin-left: 15px; display:inline; border:1px solid #C1AE9E; padding:1px;}
.commentnew dl dd.recruit h5{background:#E0DBD3; color:#47381C; font-size:12px; height:24px; line-height:24px; padding-left:10px;}

.commentnew dl dd.recruit ul{padding:0; margin:10px 5px; height:252px; overflow:hidden; width:auto; float:none;}
.commentnew dl dd.recruit ul li{list-style:none; background:url(http://c.csdn.net/www/images/blog/dot_2.gif) left 7px no-repeat; margin-left:5px; padding-left:12px; margin-bottom:6px; height:36px; overflow:hidden;}

.commentnew dl dd ul{width:474px; float:left; margin:0; padding:0 0 10px 0;}
.commentnew dl dd ul li.left{width:70px; margin:0 0 0 12px; display:inline; padding:0; float:left;text-align:left;  line-height:18px; }
*+html .commentnew dl dd ul li.left{line-height:20px;}
*html .commentnew dl dd ul li.left{line-height:20px;}
.commentnew dl dd ul li.lefttop{width:70px; margin:0 0 0 12px; display:inline; float:left;padding:5px 0; }
.commentnew dl dd ul li.right{width:380px; margin:0; padding:0 12px 0 0; display:inline; float:left; text-align:left; line-height:18px;}
.commentnew dl dd ul li.right img.brow{float:left; padding:0px 4px;}
.commentnew dl dd ul li.right .textarea{width:378px; float:left; height:150px; border:1px solid #c3c3c3; padding:3px; margin:0; vertical-align:top;}
.commentnew dl dd ul li.right .input{width:120px; float:left; height:18px;line-height:18px;  border:1px solid #c3c3c3; padding:0 2px; margin:0; vertical-align:middle;}
.commentnew dl dd ul li.right span.left{width:auto;float:left; text-align:left;}
.commentnew dl dd ul li.right span.right{width:100px;float:right; text-align:right;}
.commentnew dl dd ul li.right span a{color:#f00}
.commentnew dl dd ul li.right span a.red:link, a.red:visited, a.red:hover, a.red:active{color:#f00}
.commentnew dl dd ul li.right em{color:#466bbb;font-style:noraml;}
.commentnew dl dd ul li.right a img.btn{padding:0 0 3px 0; width:68px; height:21px;}
.commentnew dl dd ul li.right .checkbox{padding:0; margin:0;vertical-align:middle; border:0;}
	</style>
<div id="csdnblog_content">
	<div class="gutter">
		<div class="chal default_contents" id="chal" style="display:none;">
			<h4 class="conts notice" style="height:20px;">
				<span style="float:left;font-weight:bold;margin:2px 0 0 0;">公告：</span>
				<div id="ann" style="width:500px;float:left;">
					<div id="annbody" style="border-top: 0px none;">
						<ul id="annbodylis">
							<script src="http://ping.csdn.net/rsscache.aspx?rssurl=http://temp.csdn.net/Feed.aspx?Column=5e073cfd-3db5-4e7e-8e6e-1da4425ab6e4&amp;count=1&amp;area=224" type="text/javascript"></script>
						</ul>
					</div>
				</div>
				<span><a href="http://forum.csdn.net/SList/blogSupport" target="_blank">[意见反馈]</a><a href="http://blog.csdn.net/blogdevteam" target="_blank">[官方博客]</a></span>
			</h4>
		</div>

		<div class="default_contents">
			<div class="user_article">

				<script type="text/javascript" src="/js/feedbackcount.js"></script>

				<h1 class="title_txt">
					<img src="/images/authorship.gif" border="0" width="15" height="15" alt="原创"/>&nbsp;
					FTP知识集锦
					<cite class="fav_csdnstylebykimi"><a href="JavaScript:d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(saveit=window.open('http://wz.csdn.net/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'saveit','scrollbars=no,width=590,height=300,left=75,top=20,status=no,resizable=yes'));saveit.focus();"
						class="fav_csdnstylebykimi" title="收藏到我的网摘中，并分享给我的朋友">收藏</a> </cite>
					
				</h1>
				<div class="blogstory">

					<script type="text/javascript">
						document.body.oncopy = function () {
							if (window.clipboardData) {
								setTimeout(function () {
									var text = clipboardData.getData("text");
									if (text && text.length > 300) {
										text = text + "\r\n\n本文来自CSDN博客，转载请标明出处：" + location.href;
										clipboardData.setData("text", text);
									}
								}, 100);
							}
						}
					</script>

					<script type="text/javascript">						function StorePage() { d = document; t = d.selection ? (d.selection.type != 'None' ? d.selection.createRange().text : '') : (d.getSelection ? d.getSelection() : ''); void (keyit = window.open('http://www.365key.com/storeit.aspx?t=' + escape(d.title) + '&u=' + escape(d.location.href) + '&c=' + escape(t), 'keyit', 'scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes')); keyit.focus(); }</script>

					<span>什么是FTP? <br />--------------------------------------------------------------------------------<br /><br />FTP（File Transfer Protocal）<br />是用于Internet上的控制文件的双向传输的协议。同时，它也是一个应用程序。用户可以通过它把自己的PC<br /><br />机与世界各地所有运行FTP协议的服务器相连，访问服务器上的大量程序和信息。为了更好的运用我们的网<br /><br />络资源，让用户与用户之间实现资源共享。 <br />--------------------------------------------------------------------------------<br /><br />FTP教程（上）port和pasv模式释义、设置教程 <br /><br />--------------------------------------------------------------------------------<br /><br />所谓port模式也就是主动模式。在FTP协议刚刚建立的时候，只定义了普通的连接模式，也就是port模式。<br /><br />Port模式的连接过程是：在开始一个FTP的连接时，客户端程序首先会为自己随机分配一个TCP端口，它使用<br /><br />这个个端口向服务器的FTP端口（默认为21）发出连接请求，服务器接受请求之后会建立一条控制链路,然后<br /><br />客户程序发出port命令（通常格式为PORT A, A, A, A, I，I，其中A，A，A，A为客户端IP地址，I，I为随<br /><br />机的一个数据连接端口号）告诉服务器它的数据通道的端口打开了。当需要传送数据时，服务器便从随机选<br /><br />择的一个端口向客户端的20端口发送连接请求，请求被接受之后便开始传输数据，数据链路通道也就打开了<br /><br />。<br /><br />－－－－－－－－－－－－－－－<br /><br />所谓pasv模式也就是被动模式。随着网络的不断发展，出现了防火墙。老的FTP协议在遇到防火墙的时候就<br /><br />束手无策了，这是因为20端口往往是防火墙的重点封堵对象，因此数据也就不能发送出去了，于是pasv模式<br /><br />就诞生了。<br /><br />Pasv模式的连接过程是：在开始一个FTP的连接时，客户端程序首先为自己随机分配一个TCP端口，它使用这<br /><br />个端口向服务器的FTP端口（默认为21）发出连接请求，服务器接受请求之后会建立一条控制链路,然后客户<br /><br />端程序发出PASV命令，代替原来PORT命令告诉服务器它的数据连接端口，于是服务器便为自己随机分配一个<br /><br />数据通道端口，并将这个端口号告诉客户端程序。当需要传送数据时，客户端程序会向服务器的数据通道端<br /><br />口发送连接请求，请求被接受之后便开始传输数据，数据链路通道也就打开了。<br /><br />－－－－－－－－－－－－－－－<br /><br />1．所谓主动和被动可以看作是以服务器端为基准，当服务器主动向客户端发送数据连接请求时，为主动模<br /><br />式；当客户端主动向服务器发送数据连接请求时，为被动模式。<br /><br />2．无论客户端还是服务器端有防火墙，或是两边都有防火墙，只要PASV模式下两边数据通道的连接端口在<br /><br />防火墙的拦截之外就可以建立成功。如果防火墙将所有的端口全部堵死，则不能建立数据通道。<br /><br />－－－－－－－－－－－－－－－<br /><br />FTP使用中PASV模式的操作方法（注：此方法只有在无法登录和下载的情况下才可使用！！！ ）<br /><br />取消 pasv 模式的方法<br />有许多朋友的 FTP 服务器是不支持 PASV 模式的，登入時要取消 PASV 模式才行。现将几种 FTP 下载工具<br /><br />的取消方法公布如下：<br /><br />1.把 flashget 的 pasv 模式关掉的方法<br /><br />点菜单上的&ldquo;工具&rdquo;－&gt;&ldquo;选项&rdquo;－&gt;&ldquo;代理服务器&rdquo;－&gt;&ldquo;直接连接&rdquo;－&gt;编辑－&gt;把&ldquo; pasv 模式&rdquo;前的勾<br /><br />勾去掉，一路确定回来。<br /><br />2.把 Cutftp 的 pasv 模式关掉的方法<br /><br />点菜单上的&ldquo;文件&rdquo;－&gt;&ldquo;站点管理&rdquo;－&gt;在&ldquo;站点管理器&rdquo;窗口－&gt;&ldquo;新建站点&rdquo;－&gt;填上&ldquo;域名&rdquo;－&gt;&ldquo;编<br /><br />辑&rdquo;－&gt;&ldquo;常规&rdquo;－&gt;把&ldquo;使用 pasv 模式&rdquo;前的勾勾去掉。<br /><br />3.把 FlashFXP 的 pasv 模式关掉的方法<br /><br />点菜单上的&ldquo;站点&rdquo;－&gt;&ldquo;站点管理器&rdquo;－&gt;站点管理器窗口－&gt;&ldquo;新建站点&rdquo;－&gt;填上&ldquo;域名&rdquo;－&gt;&ldquo;选项&rdquo;<br /><br />－&gt;把&ldquo;使用被动模式&rdquo;前的勾勾去掉－&gt;&ldquo;应用&rdquo; 即可。<br /><br />4.把 NetAnts 的 pasv 模式关掉的方法<br /><br />点菜单上的&quot;选项&quot;－&gt;&quot;参数设置&quot;－&gt;&quot;代理&quot;－&gt;&ldquo;直接连接&rdquo;－&gt;编辑－&gt;把&ldquo; 正在连接到 ftp 服务器 211.*.*.*:* (ip = PWD <br />257 &quot;/&quot; 正在连接到 ftp 服务器 211.*.*.*:*(ip = 无法连接到远程服务器。Socket 错误 = PASS ***** <br /><br />530 Not logged in, unauthorized IP address. <br /><br />就是说你的ip是不合法的，不管是因为什么原因，总之除非你与管理者联系并解封，实在是没有继续尝试的<br /><br />必要。当然，管理者可能只是ban你一段时间，你可以过后再重新尝试。但是一定记得更改你的尝试间隔时<br /><br />间。<br /><br />七. 有时候不是因为封了你，而是因为该帐号限制只有部分许可的ip可以登陆，同样你必须与管理者联系，<br /><br />请他手工添加你的ip<br /><br />120　　　 服务在nnn分钟内准备好<br />125　　　 数据连接已打开，准备传送<br />150　　　 文件状态良好，打开数据连接<br />200　　　 命令成功<br />202　　　 命令未实现<br /><br />211　　　 系统状态或系统帮助响应<br />212　　　 目录状态<br />213　　　 文件状态<br />214　　　 帮助信息，信息仅对人类用户有用<br />215　　　 名字系统类型<br /><br />220　　　 对新用户服务准备好<br />221　　　 服务关闭控制连接，可以退出登录<br />225　　　 数据连接打开，无传输正在进行<br />226　　　 关闭数据连接，请求的文件*作成功<br />227　　　 进入被动模式<br /><br />230　　　 用户登录<br />250　　　 请求的文件*作完成<br />257　　　 创建&quot;PATHNAME&quot;<br />331　　　 用户名正确，需要口令<br />332　　　 登录时需要帐户信息<br /><br />350　　　 请求的文件*作需要进一步命令<br />421　　　 连接用户过多<br />425　　　 不能打开数据连接<br />426　　　 关闭连接，中止传输<br />450 　　　请求的文件*作未执行<br /><br />451 　　　中止请求的操作：有本地错误<br />452 　　 &nbsp; 中止请求的操作：系统存储空间不足<br />500 　　　格式错误，命令不可识别<br />501 　　　参数语法错误<br />502 　　　命令未实现<br /><br />503 　　　命令顺序错误<br />504　　　 此参数下的命令功能未实现<br />530 　　　账号或密码错误<br />532 　　　存储文件需要帐户信息<br />550　　　 未执行请求的操作<br /><br />551　　　 请求操作中止：页类型未知<br />552　　　 请求的文件操作中止，存储分配溢出<br />553　　　 未执行请求的操作：文件名不合法<br /><br />--------------------------------------------------------------------------------<br /><br />构建个人FTP服务器[教程] <br /><br /><br /><br />--------------------------------------------------------------------------------<br /><br /><br />用Serv-U FTP Server构建自己的强力FTP服务器<br /><br />作者：吕达嵘<br /><br />在网上做过软件下载的人都知道，建立一个FTP下载服务器相对比较简单，一般用WIN2000下自带的IIS就可<br /><br />以，但IIS在功能上好多都不尽人如意，下面我就介绍一款功能非常强大，但使用简单的FTP服务器构建软件<br /><br />-Serv-U FTP Server，让我们也来体验一下自己DIYFTP服务器的快乐！<br /><br />在说明使用之前，让我先大致介绍一下Serv-U（本文中提到的Serv-U版本3.0.0.17）， Serv-U 是一个可以<br /><br />运行于Windows 95/98/2000/xp 和 Windows NT 4.0下的FTP服务器程序如图所示，<br /><br /><br />有了它，你的个人电脑就可以模拟为一个FTP服务器，也就是说，你所连接的网络中的计算机用户可以访问<br /><br />你的个人电脑，通过FTP协议（文件传输协议）复制、移动、删除你的电脑中的文件或文件夹，可以做一切<br /><br />权限所允许的事情。FTP协议规定了计算机之间的标准通讯方式，使所有不同类型，不同操作系统，不同格<br /><br />式的电脑之间得以互换文件。它可以用最简单的方式创建用户帐号，并且在硬盘空间上划分一定的区域用以<br /><br />存放文件，让用户以各种FTP客户端软件（如CuteFTP、WS_FTP等）上传或下载所需要的文件。<br /><br />有许多FTP服务器和客户端软件可用于不同的系统中，Serv-U是用于运行MS-Windows 并且已安装了WinSock <br /><br />版本 1.1 兼容 TCP/IP协议的个人电脑中的，这几乎包括了所有的Windows操作系统。<br /><br />Serv-U由两大部分组成，引擎和用户界面。Serv-U引擎（ServUDaemon.exe）其实是一个常驻后台的程序，<br /><br />也是Serv-U整个软件的心脏部分，它负责处理来自各种FTP客户端软件的FTP命令，也是负责执行各种文件传<br /><br />送的软件。在运行Serv-U引擎也就是 ServUDaemon.exe文件后，我们看不到任何的用户界面，它只是在后台<br /><br />运行，通常我们无法影响它，但在ServUAdmin.exe中我们可以停止和开始它。Serv-U引擎可以在任何<br /><br />Windows平台下作为一个本地系统服务来运行，系统服务随操作系统的启动而开始运行，而后我们就可以运<br /><br />行用户界面程序了。在Win NT/2000系统中，Serv-U会自动安装为一个系统服务，但在Win 9x/Me中，你需要<br /><br />在&ldquo;服务器&rdquo;面板中选择&ldquo;自动开始&rdquo;，才能让它转为系统服务。Serv-U用户界面（ServUAdmin.exe）也就<br /><br />是Serv -U管理员，它负责与Serv-U引擎之间的交互。它可以让用户配置Serv-U，包括创建域、定义用户、<br /><br />并告诉服务器是否可以访问。启动Serv-U管理员最简单的办法就是直接点接系统栏的&ldquo;U&rdquo;形图标，当然，<br /><br />你也可以从开始菜单中运行它。<br /><br />在此有必要把Serv-U中的一些重要的概念给大家讲清楚：每个正在运行的Serv-U引擎可以被用来运行多个&ldquo;<br /><br />虚拟&rdquo;的FTP服务器，在管理员程序中，每个&ldquo;虚拟&rdquo;的FTP服务器都称为&ldquo;域&rdquo;，因此，对于服务器来说，<br /><br />不得不建立多个域时是非常有用的。每个域都有各自的&ldquo;用户&rdquo;、&ldquo;组&rdquo;和设置。一般说来， &ldquo;设置向导<br /><br />&rdquo;会在你第一次运行应用 程序时设置好一个最初的域和用户帐号。服务器、域和用户之间的关系大家可以<br /><br />参考下表：<br />*Serv-U 服务器<br />*域 1<br />*用户帐号 1<br />*用户帐号 2<br />*用户帐号 3<br />*域 2<br />*用户帐号 1<br />*用户帐号 2<br />*域 3<br />*用户帐号 1<br />*用户帐号 1<br /><br />这个表有点类似与Serv-U管理员中服务器、域和用户的排列。<br /><br />Serv-U FTP Server 是试用软件，安装后三十天内，你可以作为&ldquo;专业版本&rdquo;使它，但试用期过后，你就只<br /><br />能作为免费的&ldquo;个人版本&rdquo;使用了，只有基本功能了。<br /><br />好了，说了这么多，还没到关键部分-如何自己来建立FTP服务器。<br />下面我就一步一步来说明。<br /><br />一、 安装原版软件和汉化补丁，这个过程就不多说了，想必没人不会的。<br /><br />二、 建立第一个本地FTP服务器<br /><br />安装完成后程序会自动运行，你也可以在菜单中选择运行。<br />1、 第一次运行程序，它会弹出设置向导窗口 将会带你完成最初的设置，<br />2、 单击&ldquo;下一步&rdquo;，出现&ldquo;显示菜单图像&rdquo;的窗口，问你是否在菜单中显示小图像，看各人喜欢了；<br />3、 单击&ldquo;下一步&rdquo;，这个窗口是让你在本地第一次运行FTP服务器，只要&ldquo;下一步&rdquo;就行了。<br />4、 接下来要你输入你的IP地址,如果你自己有服务器，有固定的IP，那就请输入IP地址，如果你只是在自<br /><br />己电脑上建立FTP，而且又是拨号用户，有的只是动态IP，没有固定IP，那这一步就省了，什么也不要填，<br /><br />Serv-U 会自动确定你的IP地址，&ldquo;下一步&rdquo;；<br />5、 在这儿要你输入你的域名,如果你有的话，如：ftp.abc.com，没有的话，就随便填一个；<br />6、 &ldquo;下一步&rdquo;，询问你是否允许匿名访问，一般说来，匿名访问是以Anonymous为用户名称登录的，无需<br /><br />密码，当然如果你想成立一个会员区什么的，就应该选择&ldquo;否&rdquo;，不让随便什么人都可以登录，只有许可用<br /><br />户才行，在此我们填&ldquo;是&rdquo;；<br />7、 &ldquo;下一步&rdquo;，问你匿名用户登录到你的电脑时的目录，你可以自己指定一个硬盘上已存在的目录，如<br /><br />F:\temp\xyz；<br />8、 &ldquo;下一步&rdquo;，询问你是否要锁定该目录，锁定后，匿名登录的用户将只能认为你所指定的目录<br /><br />（F:\temp\xyz）是根目录，也就是说他只能访问这个目录下的文件和文件夹，这个目录之外就不能访问，<br /><br />对于匿名用户一般填&ldquo;是&rdquo;；<br />9、 &ldquo;下一步&rdquo;，询问你是否创建命名的帐号，也就是说可以指定用户以特定的帐号访问你的FTP，这对于<br /><br />办会员区可很有用哦，你可以对于每个人都创建一个帐号，每个帐号的权限不同，就可以不同程序地限制每<br /><br />个人的权利，方法将在后面讲到，这里选择&ldquo;是&rdquo;；<br />10、 &ldquo;下一步&rdquo;，请你填入所要建立的帐号的名称， <br />11、 &ldquo;下一步&rdquo;，请输入密码，如：123，<br />12、 &ldquo;下一步&rdquo;，询问登录目录是什么，这一步与第7步一样，如：F:\temp<br />13、 &ldquo;下一步&rdquo;，询问你是否要锁定该目录，同第8步，这里选择&ldquo;否&rdquo;；<br />14、 接下来询问你这次创建的用户的管理员权限，有几项选择：无权限，组管理员，域管理员，只读管理<br /><br />员和系统管理员，每项的权限各不相同；这里选择&ldquo;系统管理员&rdquo;；<br />15、 最后一步，点击&ldquo;完成&rdquo;就OK了，你有什么需要修改的，可以点&ldquo;上一步&rdquo;，或者进入Serv-U管理员<br /><br />直接修改。至此，我们建立了一个域ftp.abc.com，两个用户，一个Anonymous，一个ldr。 <br /><br />三、 既然我们已经建立好FTP服务器，那么我们就应该可以用FTP客户端软件来尝试登录。<br /><br />怎么办呢？其实很简单，我们不用上网，就可以测试。我们知道，不上网时，本地机的IP地址默认就为<br /><br />127.0.0.1，FTP端口号为21。打开FTP客户端软件，我就用FlashFXP来说明，打开快速连接，填入相应内容,<br /><br />然后连接，可以看到，我左边窗格以Anonymous登录，右边窗格以ldr登录，由于是本地机，所以速度奇快，<br /><br />上网后，假如我要让你登录到我的电脑上，我只要把我的上网时的IP地址给你，你就可以匿名访问我的电脑<br /><br />了（注意不要开防火墙），是不是很方便？<br /><br />四、Serv-U管理员中的各项设置<br /><br />在设置完成后，将会进入Serv-U管理员的主界面，左边窗格中显示各个栏目，右边窗格中显示各个栏目的具<br /><br />体选项，下面就大概讲一讲设置内容。<br />1、 我们可以人为地控制Serv-U引擎的运行或停止，记住，在Win 9x/Me 中，我们就要在此选择&ldquo;系统服务<br /><br />&rdquo;，才会运行Serv-U引擎。<br />2、 &ldquo;许可&rdquo;，如果你花美元买了注册号，就可以在此输入。<br />3、 &ldquo;设置&rdquo;，这个设置是对于&ldquo;本地服务器&rdquo;来说的。&ldquo;常规&rdquo;设置中，可以限制服务器的最大速度，可<br /><br />以拦截FXP（站点到站点传送），也可以限制用户的数量，这样不至于你的服务器被拖跨。&ldquo;目录缓存&rdquo;设<br /><br />置中.<br /><br />--------------------------------------------------------------------------------<br /><br /><br />FTP使用过程当中须注意事项 <br /><br /><br /><br />--------------------------------------------------------------------------------<br /><br />1.避免出现零字节文件。在上传时，不要随意中途停止操作，最好不要中途下线。 <br />　　3.上传文件要附上说明的文本文件，说明文件名应与文件名称相同，如文件名称为note.zip，说明文件<br /><br />名就应为note.txt，以方便别人了解你的文件内容，来进行取舍。 <br />　　4.目前大部分FTP站点都是支持续传的。当你进入某站点时候盯着注意信息窗，如果显示了&ldquo;This site <br /><br />can resume broken downloads&rdquo;，即表示支持续传功能。<br /><br />　　5.因为FTP站是多用户系统，因此对于同一个目录或文件，不同的用户拥有不同的权限。如果你不能上<br /><br />传或下载某些文件，或者抓下来的文件是零字节，一般是因为用户的权限不够。<br /><br />　　6.关于Port（端口）：预设是21，大部分FTP站的port都规定是21，但一些FTP站就不一定了，如果你实<br /><br />在不能进入，就只有和网管联系了。<br /><br />　　7.注意传送文件结束后，在FTP Site Manager（FTP网站管理者）中，不要将Password密码保留，容易<br /><br />被别人利用。<br /><br />　　8.可按如下步骤显示远程区域的隐含目录：在FTP Site Manager选Edit site编辑某个站点。在<br /><br />&ldquo;Remote Directory&rdquo;项中输入&ldquo;-rtaF&rdquo;，并且不要复选&ldquo;Local Filter&rdquo;项。 <br /><br />--------------------------------------------------------------------------------<br /><br /><br />使用过程当遇到的问题 <br /><br />--------------------------------------------------------------------------------<br /><br />1、站点关闭了。有些服务器只在特定时间开放，其他时候是无法连的，不过也有可能是永久性关闭。 <br />2、连接人数过多。部分服务器限制了最大连结束，FTP软件里显示&quot;Too many user&quot;就是这种情况。ftp软件<br /><br />的自动重新连接时间一般是30秒，不要把重连时间改短，改短了可能会封IP。建议加上连通后的声音提示。 <br />3、IP限制。一些服务器一个IP只允许一个线程，超过了就会无法连接，情况严重还会封IP，这样只能断线<br /><br />重拨了。如果是C类IP被封可能重拨都不管用。<br />4、地址填错了。注意FTP软件里要填的地址不包括&quot;ftp://&quot;。<br /><br />5、用户名密码不对。不是所有的FTP服务器都可以匿名登陆的，如果你的密码是粘贴上去的注意不要多复制<br /><br />了空格。有些服务器的密码经常更换，这就需要重新找密码了。资源区的一部分站点给出了主页地址或论坛<br /><br />地址，里面可能有密码。有很多站点的http和ftp是同一台服务器，在浏览器里直接输地址看看（注意不要<br /><br />把ftp://带上，如果域名的开头是ftp，换成www试试看。）。：在本地机中执行交互shell，exit回到ftp环境，如：!ls*.zip <br /><br />2.$ macro-ame[args]： 执行宏定义macro-name。 <br /><br />3.account[password]： 提供登录远程系统成功后访问系统资源所需的补充口令。 <br /><br />4.append local-file[remote-file]：将本地文件追加到远程系统主机，若未指定远程系统文件名，则使用<br /><br />本地文件名。 <br /><br />5.ascii：使用ascii类型传输方式。 <br /><br />6.bell：每个命令执行完毕后计算机响铃一次。 <br /><br />7.bin：使用二进制文件传输方式。 <br /><br />8.bye：退出ftp会话过程。 <br /><br />9.case：在使用mget时，将远程主机文件名中的大写转为小写字母。 <br /><br />10.cd remote-dir：进入远程主机目录。 <br /><br />11.cdup：进入远程主机目录的父目录。 <br /><br />12.chmod mode file-name：将远程主机文件file-name的存取方式设置为mode，如：chmod 777 a.out。 <br /><br />13.close：中断与远程服务器的ftp会话(与open对应)。 <br /><br />14.cr：使用asscii方式传输文件时，将回车换行转换为回行。 <br /><br />15.delete remote-file：删除远程主机文件。 <br /><br />16.debug[debug-value]：设置调试方式， 显示发送至远程主机的每条命令，如：deb up 3，若设为0，表<br /><br />示取消debug。 <br /><br />17.dir[remote-dir][local-file]：显示远程主机目录，并将结果存入本地文件 <br /><br />18.disconnection：同close。 <br /><br />19.form format：将文件传输方式设置为format，缺省为file方式。 <br /><br />20.get remote-file[local-file]： 将远程主机的文件remote-file传至本地硬盘的local-file。 <br /><br />21.glob：设置mdelete，mget，mput的文件名扩展，缺省时不扩展文件名，同命令行的-g参数。 <br /><br />22.hash：每传输1024字节，显示一个hash符号(#)。 <br /><br />23.help[cmd]：显示ftp内部命令cmd的帮助信息，如：help get。 <br /><br />24.idle[seconds]：将远程服务器的休眠计时器设为[seconds]秒。 <br /><br />25.image：设置二进制传输方式(同binary)。 <br /><br />26.lcd[dir]：将本地工作目录切换至dir。 <br /><br />27.ls[remote-dir][local-file]：显示远程目录remote-dir， 并存入本地文件local-file。 <br /><br />28.macdef macro-name：定义一个宏，遇到macdef下的空行时，宏定义结束。 <br /><br />29.mdelete[remote-file]：删除远程主机文件。 <br /><br />30.mdir remote-files local-file：与dir类似，但可指定多个远程文件，如 ：mdir *.o.*.zipoutfile <br /><br />。 <br /><br />31.mget remote-files：传输多个远程文件。 <br /><br />32.mkdir dir-name：在远程主机中建一目录。 <br /><br />33.mls remote-file local-file：同nlist，但可指定多个文件名。 <br /><br />34.mode[modename]：将文件传输方式设置为modename， 缺省为stream方式。 <br /><br />35.modtime file-name：显示远程主机文件的最后修改时间。 <br /><br />36.mput local-file：将多个文件传输至远程主机。 <br /><br />37.newer file-name： 如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近，则重传该文件<br /><br />。 <br /><br />38.nlist[remote-dir][local-file]：显示远程主机目录的文件清单，并存入本地硬盘的local-file。 <br /><br />39.nmap[inpattern outpattern]：设置文件名映射机制， 使得文件传输时，文件中的某些字符相互转换， <br /><br />如：nmap $1.$2.$3[$1，$2].[$2，$3]，则传输文件a1.a2.a3时，文件名变为a1，a2。 该命令特别适用于<br /><br />远程主机为非UNIX机的情况。 <br /><br />40.ntrans[inchars[outchars&gt;：设置文件名字符的翻译机制，如ntrans1R，则文件名LLL将变为RRR。 <br /><br />41.open host[port]：建立指定ftp服务器连接，可指定连接端口。 <br /><br />42.passive：进入被动传输方式。 <br /><br />43.prompt：设置多个文件传输时的交互提示。 <br /><br />44.proxy ftp-cmd：在次要控制连接中，执行一条ftp命令， 该命令允许连接两个ftp服务器，以在两个服<br /><br />务器间传输文件。第一条ftp命令必须为open，以首先建立两个服务器间的连接。 <br /><br />45.put local-file[remote-file]：将本地文件local-file传送至远程主机。 <br /><br />46.pwd：显示远程主机的当前工作目录。 <br /><br />47.quit：同bye，退出ftp会话。 <br /><br />48.quote arg1，arg2...：将参数逐字发至远程ftp服务器，如：quote syst. <br /><br />49.recv remote-file[local-file]：同get。 <br /><br />50.reget remote-file[local-file]：类似于get， 但若local-file存在，则从上次传输中断处续传。 <br /><br />51.rhelp[cmd-name]：请求获得远程主机的帮助。 <br /><br />52.rstatus[file-name]：若未指定文件名，则显示远程主机的状态， 否则显示文件状态。 <br /><br />53.rename[from][to]：更改远程主机文件名。 <br /><br />54.reset：清除回答队列。 <br /><br />55.restart marker：从指定的标志marker处，重新开始get或put，如：restart 130。 <br /><br />56.rmdir dir-name：删除远程主机目录。 <br /><br />57.runique：设置文件名只一性存储，若文件存在，则在原文件后加后缀.1， .2等。 <br /><br />58.send local-file[remote-file]：同put。 <br /><br />59.sendport：设置PORT命令的使用。 <br /><br />60.site arg1，arg2...：将参数作为SITE命令逐字发送至远程ftp主机。 <br /><br />61.size file-name：显示远程主机文件大小，如：site idle 7200。 <br /><br />62.status：显示当前ftp状态。 <br /><br />63.struct[struct-name]：将文件传输结构设置为struct-name， 缺省时使用stream结构。 <br /><br />64.sunique：将远程主机文件名存储设置为只一(与runique对应)。 <br /><br />65.system：显示远程主机的操作系统类型。 <br /><br />66.tenex：将文件传输类型设置为TENEX机的所需的类型。 <br /><br />67.tick：设置传输时的字节计数器。 <br /><br />68.trace：设置包跟踪。 <br /><br />69.type[type-name]：设置文件传输类型为type-name，缺省为ascii，如:type binary，设置二进制传输方<br /><br />式。 <br /><br />70.umask[newmask]：将远程服务器的缺省umask设置为newmask，如：umask 3 <br /><br />71.user user-name[password][account]：向远程主机表明自己的身份，需要口令时，必须输入口令，如：<br /><br />user anonymous my@email。 <br /><br />72.verbose：同命令行的-v参数，即设置详尽报告方式，ftp 服务器的所有响 应都将显示给用户，缺省为<br /><br />on. <br /><br />73.?[cmd]：同help</span>&nbsp;&nbsp;
					<p class="right articalinfo">
						发表于 @
						2007年08月13日　11:03:00&nbsp;&#124; <a id="a_comment" href="#FeedBack" title="评论">评论( <span
							id="FeedbackCount_1740287">loading...</span>

							<script type="text/javascript">
								AddFeedbackCountStack("1740287")
							</script>

							) </a>&#124; <span style="display: none;"><a class="a_edit" href="http://writeblog.csdn.net/PostEdit.aspx?entryId=1740287"
								title="编辑">编辑</a>&#124</span> <a href='m&#97;ilto&#58;webmaster&#64;csdn&#46;net?subject=Article%20Report!!!&body=Author:Carol518%0D%0AURL:http://blog.csdn.net/ArticleContent.aspx?UserName=Carol518&Entryid=1740287'>
									举报</a>&#124; <cite class="fav_csdnstylebykimi"><a href="JavaScript:d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(saveit=window.open('http://wz.csdn.net/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'saveit','scrollbars=no,width=590,height=300,left=75,top=20,status=no,resizable=yes'));saveit.focus();"
										class="fav_csdnstylebykimi" title="收藏到我的网摘中，并分享给我的朋友">收藏</a> </cite>
					</p>
					<span id="Post.ascx_ViewPost_PreviousAndNextEntriesDown">
						<h3 class="pagego">
							<a href="/Carol518/archive/2007/08/13/1740275.aspx">旧一篇:批处理经典教程！(从不懂到高手)[下篇]</a>&nbsp;|&nbsp;<a href="/Carol518/archive/2007/08/13/1740298.aspx">新一篇:几个除病毒的批处理</a></h3>
					</span>
					<div style="text-align: left;">
						<!-- ca-pub-1076724771190722/blog_postpage_72890
						<script type='text/javascript'>
							GA_googleFillSlot("blog_postpage_72890");
						</script> -->
                        <!-- GOOGLE广告显示不出来，换成BAIDU -->
                        <script type="text/javascript" src="http://cbjs.baidu.com/js/s.js"></script>
                        <script type="text/javascript">BAIDU_CLB_singleFillSlot("117306");</script>

					</div>
					<div class="mutualitys">
						<dl>
							<dt><span><a onclick="LogClickCount(this,215)" target="_blank" href="http://blog.csdn.net">
								查看最新精华文章 请访问博客首页</a></span>相关文章</dt>
						</dl>
					</div>
				</div>
			</div>
			<a name="FeedBack"></a>

			<script type="text/javascript">
				var CurrentEntryId = '1740287';
				var CurArticleTitle = 'FTP知识集锦';
				var AllowComment = 'True';
				var AllowAnonymousComment = /^true$/i.test('False');
			</script>

			<div class="commentslist" id="commentslist">
			</div>

			<script type="text/javascript" src="/js/CsdnDialog.js"></script>

			<script type="text/javascript">
				function ChangeIdentifyingCode() {
					var url = $('#imgValidationCode').attr('src');
					if (!(/&d=[\d\.]+$/).test(url)) url += "&d=1";
					url = url.replace(/&d=[\d\.]+$/, "&d=" + Math.random());
					$('#imgValidationCode').attr('src', url);
				}

				function OpenLoginDialog() {
					element = document.getElementById("loginBtn");
					var position = absolutePoint(element);

					var dialogTop = position.y - 400;
					var dialogLeft = position.x - 220;
					var dialogWidth = 435;
					var dialogHeight = 420;
                    //replyLogin
					showWindow({ url: 'http://passport.csdn.net/UserLogin.aspx?show=simple&from=http%3a%2f%2fblog.csdn.net%2f!tools%2fLoginSussess.aspx'
						, title: '登录'
						, top: dialogTop
						, left: dialogLeft
						, width: dialogWidth
						, height: dialogHeight
					});
				}

				function closeDialog(needRefresh) {
					closeWindow();
					if (needRefresh) {
						var url = location.href;
						if ((/\?/g).test(url))
							url = url.replace(/\?.*$/g, ("?" + Math.random()).replace(/\./g, ""));
						else url += ("?" + Math.random()).replace(/\./g, "");
						location.href = url;
					}
					$("#SubmitFeedback").unbind("click");
					$("#SubmitFeedback").bind("click", PostContent);
				}

				function absolutePoint(element) {
					var result = { x: element.offsetLeft, y: element.offsetTop };
					element = element.offsetParent;
					while (element) {
						result.x += element.offsetLeft;
						result.y += element.offsetTop;
						element = element.offsetParent;
					}
					return result;
				}

				function startmarquee(lh, speed, delay, index) {
					var t;
					var p = false;
					var o = document.getElementById("marqueebox" + index);
					o.innerHTML += o.innerHTML;
					o.onmouseover = function () { p = true }
					o.onmouseout = function () { p = false }
					o.scrollTop = 0;
					function start() {
						t = setInterval(scrolling, speed);
						if (!p) o.scrollTop += 2;
					}
					function scrolling() {
						if (o.scrollTop % lh != 0) {
							o.scrollTop += 2;
							if (o.scrollTop >= o.scrollHeight / 2) o.scrollTop = 0;
						} else {
							clearInterval(t);
							setTimeout(start, delay);
						}
					}
					setTimeout(start, delay);
				}

				function addEventHandler(target, type, func) {
					if (target.addEventListener)
						target.addEventListener(type, func, false);
					else if (target.attachEvent)
						target.attachEvent("on" + type, func);
					else target["on" + type] = func;
				}

				addEventHandler(window, "load", function () {
					startmarquee(42, 50, 3000, 0);
				});
			</script>

			<div class="commentnew">
				<dl>
					<dt>
						<ul>
							<li class="left">发表评论</li>

							<script src="http://svc.csdn.net/ColumnService/RandomColumnContentJS.aspx?id=835ac618-5f1a-41b2-b4dc-716234f8d656&c=1&t=li"
								type="text/javascript"></script>

						</ul>
					</dt>
					<dd>
						<ul>
							<li class="lefttop">表 情：</li>
							<li class="right"><a href="#" onclick="return false;">
								<img title="顶" alt="顶" class="brow" src="/images/emotions/e01.gif" /></a> <a href="#"
									onclick="return false;">
									<img title="砸" alt="砸" class="brow" src="/images/emotions/e02.gif" /></a> <a href="#"
										onclick="return false;">
										<img title="棒" alt="棒" class="brow" src="/images/emotions/e03.gif" /></a>
								<a href="#" onclick="return false;">
									<img title="大笑" alt="大笑" class="brow" src="/images/emotions/e04.gif" /></a>
								<a href="#" onclick="return false;">
									<img title="愤怒" alt="愤怒" class="brow" src="/images/emotions/e05.gif" /></a>
								<a href="#" onclick="return false;">
									<img title="大哭" alt="大哭" class="brow" src="/images/emotions/e06.gif" /></a>
								<a href="#" onclick="return false;">
									<img title="疑问" alt="疑问" class="brow" src="/images/emotions/e07.gif" /></a>
								<a href="#" onclick="return false;">
									<img title="汗" alt="汗" class="brow" src="/images/emotions/e08.gif" /></a> <a href="#"
										onclick="return false;">
										<img title="呕吐" alt="呕吐" class="brow" src="/images/emotions/e09.gif" /></a>
								<a href="#" onclick="return false;">
									<img title="送花" alt="送花" class="brow" src="/images/emotions/e10.gif" /></a>
							</li>
						</ul>
						<ul>
							<li class="left">评论内容：</li>
							<li class="right">
								<textarea id="content" class="textarea" onkeydown="if(event.ctrlKey && event.keyCode==13){return $('#SubmitFeedback').click();}"></textarea>
							</li>
						</ul>
						<div>
							<ul>
								<li class="left">用 户 名：</li>
								<li class="right"><span id="loginTips" class="right" style="display: none;"><a href="javascript:void(0);"
									onclick="OpenLoginDialog(this);return false;" class="red" id="loginBtn">登录</a> <a
										href="http://passport.csdn.net/CSDNUserRegister.aspx" target="_blank" class="red">
										注册</a> </span><span class="right" style="display: none;">
											<input type="checkbox" id="anonymous" class="checkbox" />匿名评论 </span><span id="commentUser"
												class="left"></span></li>
							</ul>
						</div>
						<ul style="display: none;">
							<li class="left">验 证 码：</li>
							<li class="right">
								<input id="code" type="text" class="input" />
								<a href="javascript:ChangeIdentifyingCode()">
									<img id="imgValidationCode" alt="验证码" style="vertical-align: middle;" src="http://comments.blog.csdn.net/AntiBotImage.ashx?entryId=1740287" /></a>
								<a href="javascript:ChangeIdentifyingCode()">重新获得验证码</a> </li>
						</ul>
						<ul>
							<li class="left">&nbsp;</li>
							<li class="right">
								<input id="SubmitFeedback" type="button" value="发表评论" class="submitbtn" />
								
							</li>
						</ul>
					</dd>
				</dl>
			</div>
            <style>
.blog_behind_ad{clear:both; display:block; *display:inline-block;}
.blog_behind_ad:after{content:"."; display:block; height:0; clear:both; visibility:hidden;}

.blog_ad{position:relative; float:left; width:45%; margin:0 1% 0 1%; padding:1px; border:solid 1px #d7cbc1; background:#fff; color:#000; list-style:none; font-size:12px; line-height:20px;}
.blog_ad #scrollDiv{padding:0 8px;}
.blog_ad #scrollDiv2{padding:0 8px;}
.blog_ad a{color:#47381c; text-decoration:none;}
.blog_ad a:hover{text-decoration:underline;}
.blog_ad *{margin:0; padding:0; list-style:none;}
.blog_ad h5{height:24px; padding:0 5px; background:#E0DBD3; color:#47381c; font-size:12px; line-height:24px;}
.blog_ad h5 a{color:#47381c;}
.blog_ad ul{height:120px; overflow:hidden; margin:10px 5px;}
.blog_ad li{padding:0 0 0 17px; background:url(http://csdnimg.cn/www/images/point_tui.gif) no-repeat left 3px;}
.blog_ad #btn1,.blog_ad #btn12{position:absolute; right:30px; bottom:10px; width:15px; height:15px; border:none; background:#5d5d5d; color:#fff; font-size:11px; line-height:15px; cursor:pointer; text-align:center;}
.blog_ad #btn2,.blog_ad #btn22{position:absolute; right:10px; bottom:10px; width:15px; height:15px; border:none; background:#5d5d5d; color:#fff; font-size:11px; line-height:15px; cursor:pointer; text-align:center;}

#recommended li{ background-image:url(http://csdnimg.cn/www/images/point_pin.gif);}
</style>
<script type="text/javascript" src="http://ag.csdn.net/js/jquery.scroll.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $("#scrollDiv").Scroll({ line: 6, speed: 1, timer: 6000, left: "btn1", right: "btn2" });
    });  
</script>
<div class="blog_behind_ad">
	<div class="blog_ad">
		<h5>专区推荐内容</h5>
		<div id="scrollDiv">
			<script type="text/javascript" src="http://ag.csdn.net/common/ArticleGet.ashx"></script>
		</div>
		<button id="btn1"><<</button>
		<button id="btn2">>></button>
	</div>
	<div id="recommended" class="blog_ad">
		<h5>热门招聘职位 【<a href="http://special.csdn.net/zhaopin/index.html" target=_blank>更多</a>】</h5>
		<div id="scrollDiv2">
		<ul id="marqueebox0">
		<script type="text/javascript" src="http://ping.csdn.net/rsscache.aspx?rssurl=http://temp.csdn.net/Feed.aspx?Column=3550748a-ac9a-4ff1-ba62-3739fce143ba&amp;count=24&amp;area=226"></script>
		</ul>
		</div>
	</div>
</div>
<script type="text/javascript">
	function addEventHandler(target, type, func) {
		if (target.addEventListener)
			target.addEventListener(type, func, false);
		else if (target.attachEvent)
			target.attachEvent("on" + type, func);
		else target["on" + type] = func;
	}
	addEventHandler(window, "load", function () {
		({
			anndelay: 5000,
			annst: 0,
			annstop: 0,
			annrowcount: 0,
			anncount: 0,
			annrows: [],
			annstatus: 0,
			announcementScroll: function () {
				var self = this;
				var annlis = self.annbody.getElementsByTagName("li");
				if (self.annstop) {
					self.annst = setTimeout(function () { self.announcementScroll(); }, self.anndelay);
					return;
				}
				if (!self.annst) {
					var lasttop = -1;
					for (var i = 0; i < annlis.length; i++) {

						if (lasttop != annlis[i].offsetTop) {
							if (lasttop == -1) {
								lasttop = 0;
							}
							self.annrows[self.annrowcount] = annlis[i].offsetTop - lasttop;
							self.annrowcount++;
						}
						lasttop = annlis[i].offsetTop;
					}

					if (self.annrows.length == 1) {
						self.ann.onmouseover = self.ann.onmouseout = null;
					} else {
						self.annrows[self.annrowcount] = self.annrows[1];
						self.annbodylis.innerHTML += self.annbodylis.innerHTML;
						self.annst = setTimeout(function () { self.announcementScroll(); }, self.anndelay);
					}
					self.annrowcount = 1;
					return;
				}

				if (self.annrowcount >= self.annrows.length) {
					self.annbody.scrollTop = 0;
					self.annrowcount = 1;
					self.annst = setTimeout(function () { self.announcementScroll(); }, self.anndelay);
				} else {
					self.anncount = 0;
					self.announcementScrollnext(self.annrows[self.annrowcount]);
				}
			},
			announcementScrollnext: function (time) {
				var self = this;
				self.annbody.scrollTop++;
				self.anncount++;
				if (self.anncount != time) {
					self.annst = setTimeout(function () {
						self.announcementScrollnext(time);
					}, 10);
				} else {
					self.annrowcount++;
					self.annst = setTimeout(function () { self.announcementScroll(); }, self.anndelay);
				}
			},
			play: function () {
				var self = this;
				self.annbody = document.getElementById('annbody');
				if (!self.annbody) return;
				self.ann = document.getElementById('ann');
				self.annbodylis = document.getElementById('annbodylis');
				self.chal = document.getElementById('chal');
				if (!self.annbodylis.getElementsByTagName("li").length) return;
				self.chal.style.display = "";
				self.ann.onmouseover = function () { this.annstop = 1; };
				self.ann.onmouseout = function () { this.annstop = 0; };
				self.announcementScroll();
			}
		}).play();
	});
</script>

<script type="text/javascript">
	LoadFeedbackCount();
	document.write("<img src='http://counter.csdn.net/pv.aspx?id=24' border=0 width=0 height=0>");
</script>
		</div>
	</div>
</div>

            
<script src="http://csdnimg.cn/pubfooter/js/publib_footer.js" type="text/javascript"></script>
<script type="text/javascript" src="http://www.csdn.net/ui/scripts/Csdn/counter.js"></script>

        </div>
    </div>
    <img src='/!handler/count.aspx?blogid=208471&entryid=1740287&title=FTP知识集锦&url=http://blog.csdn.net/weixiuc/archive/2008/11/13/3282872.aspx' height=0 width=0>
</body>
</html>
